/*
 * Copyright (c) 2017. 上海业晋信息技术有限公司 www.yejinsoft.com
 */

//config的设置是全局的
layui.config({
    base: '/js/plugins/' // 自定义扩展插件所在的目录
}).extend({ //设定模块别名
    yjsloading: 'yjsloading',
});

layui.use(['form', 'yjsloading', 'upload', 'layedit', 'carousel'], function () {
    var $ = layui.jquery
        , form = layui.form
        , yjsloading = layui.yjsloading
        , upload = layui.upload
        , layedit = layui.layedit
        , carousel = layui.carousel;


    // 富文本编辑器
    var editIndex = layedit.build('notice_editor',{
        tool: ['strong', 'italic', 'underline', 'del', '|', 'left', 'center', 'right', '|', 'link', 'unlink']
    });

    // 创建carousel轮播控件
    var carouselIndex = carousel.render({
        elem: '#previewCarousel',
        interval: 2000,
    });

    // 待上传图片文件队列
    var imagesQueue;

    // 图集上传
    var previewListView = $('#imagesList')
        , uploadListIns = upload.render({
        elem: '#btnChooseImages'
        , url: '/upload/notices/image'
        , exts: 'jpg|png|bmp|jpeg'
        , size: 2048
        , accept: 'file'
        , multiple: false
        , auto: false
        , bindAction: '#btnUploadImages'
        , choose: function (obj) {
            imagesQueue = obj.pushFile(); //将每次选择的文件追加到文件队列
            //读取本地文件
            obj.preview(function (index, file, result) {
                var tr = $(['<tr id="upload-' + index + '">'
                    , '<td>' + index + '</td>'
                    , '<td>' + file.name + '</td>'
                    , '<td>' + (file.size / 1014).toFixed(1) + 'kb</td>'
                    , '<td>等待上传</td>'
                    , '<td>'
                    , '<button class="layui-btn layui-btn-mini demo-reload layui-hide">重传</button>'
                    , '<button class="layui-btn layui-btn-mini layui-btn-danger demo-delete">删除</button>'
                    , '</td>'
                    , '</tr>'].join(''));

                //单个重传
                tr.find('.demo-reload').on('click', function () {
                    obj.upload(index, file);
                });

                //删除
                tr.find('.demo-delete').on('click', function () {
                    delete imagesQueue[index]; //删除对应的文件
                    tr.remove();
                });

                previewListView.append(tr);
            });
        }
        , done: function (res, index, upload) {
            if (res.code == 0) { //上传成功
                var tr = previewListView.find('tr#upload-' + index)
                    , tds = tr.children();
                tds.eq(3).html('<span style="color: #5FB878;">上传成功</span>');
                tds.eq(4).html(''); //清空操作
                delete imagesQueue[index]; //删除文件队列已经上传成功的文件
                // 为上传成功的文件，添加隐藏域赋值
                $('[name="videoCoverPic"]').val(res.data.src);

                // 为上传成功的文件，添加视频模板
                var contentVal = layedit.getContent(editIndex);
                console.log(contentVal);
                if (contentVal.length>0) {
                    layedit.sync(editIndex);
                    // 修改预览图显示
                    $('#coverImages').html('<div><img src='+res.data.src+'></div>');
                    carouselIndex.reload({
                        elem: '#previewCarousel',
                        interval: 2000,
                    });
                } else {
                    // 添加预览图显示
                    $('#coverImages').html('<div><img src='+res.data.src+'></div>');
                    carouselIndex.reload({
                        elem: '#previewCarousel',
                        interval: 2000,
                    });
                    layedit.setContent(editIndex, '<p><a href='+res.data.src+'>视频链接（请编辑修改）</a></p>');
                }
                return;
            }
            this.error(index, upload);
        }
        , error: function (index, upload) {
            var tr = previewListView.find('tr#upload-' + index)
                , tds = tr.children();
            tds.eq(3).html('<span style="color: #FF5722;">上传失败</span>');
            tds.eq(4).find('.demo-reload').removeClass('layui-hide'); //显示重传
        }
    });

    // 自定义表单验证规则
    form.verify({
        title: function (value) {
            if (!/^[\S]{1,150}$/.test(value)) {
                return '标题长度需在1~150个字符之间，且不能出现空格！';
            }
        },
        content: function (value) {
            layedit.sync(editIndex);
            var contentVal = layedit.getContent(editIndex);
            if (contentVal.length < 10) {
                return '新闻内容不得小于10个字符！';
            }
        }
    });

    // 重新获取验证码
    $('.getLVcode').click(function () {
        var url = '/vcode/path/form';
        yjsloading.loadingCaptcha(url);
    });

    // 监听部门信息表单确定按钮事件
    form.on('submit(toolbarEvent)', function (data) {
        var eventType = data.field.viewType;
        var url, msg = '';

        switch (eventType) {
            case "addData":
                url = '/notices/details/add';
                msg = '您确定执行本次数据新增操作吗？';
                break;
            case "editData":
                url = '/notices/details/update';
                msg = '您确定执行本次数据更新操作吗？';
                break;
        }

        $title = '公告(视频)栏目维护';
        $url = url;
        $msg = msg;

        yjsloading.ajaxConfirm($title, $msg, $url, data.field, function (result) {
        });
    });

    // 监听个人信息表单取消按钮事件
    $('.cancelEvent').click(function () {
        $title = '公告(视频)维护';
        $msg = '您确定取消本次数据更新操作吗？';
        yjsloading.cancelConfirm($title, $msg);
    });
});